package sistemaEnemigo;

import escenario.Escenario;
import escenario.Posicion;

public class GeneradorMisilesEnemigos implements Runnable {

	private int contadorMisiles = 0;
	private Escenario escenario;
	
	public GeneradorMisilesEnemigos(Escenario es){
		escenario = es;
	}

	public void generarMisil(double radioO, double titaO, double fiO, double radioD, double titaD, double fiD){
		//ESTAS CONDICIONES VAN EN EL RANDOM LO PONGO ACA PARA ASEGURARME QUE FUNCIONE EL TEOREMA DEL COSENO
		if((radioO * Math.sin(Math.toRadians(titaO))) < 50)
			System.out.println("El Misil Enemigo NO es generado fuera del Area de deteccion");
		else{
			if(radioD >= 10)
				System.out.println("\nGENERADOR MISILES ENEMIGOS dice =========> El Misil Enemigo NO IMPACTA dentro de la zona protegida.");
			else{
				MisilEnemigo misilE = new MisilEnemigo(contadorMisiles, escenario);
				contadorMisiles++;
				misilE.setOrigen(new Posicion(radioO, Math.toRadians(titaO), Math.toRadians(fiO)));
				misilE.setPosInicialRel();
				misilE.setDestino(new Posicion(radioD, Math.toRadians(titaD), Math.toRadians(fiD)));
				Thread hiloMisilE = new Thread(misilE);
				hiloMisilE.start();			
			}
		}
	}

	@Override
	public void run() {
		System.out.println("Se inicia la ejecucion de un generador de misiles");
		
//			COLISION ENTRE 2 MISILES ENEMIGOS Y SUS RESPECTIVOS MISILES DEFENSIVOS
//			generarMisil(165.05, 50, 90, 9, 90, 180);
//			generarMisil(165.05, 50, 80, 9, 90, 0);
//			
//		
//			generarMisil(65.05, 60, 0, 9, 90, 90);
//			generarMisil(130.05, 60, 180, 9, 90, 270);
//
//			
//			generarMisil(224.05, 60, 0, 9, 90, 225);
//			generarMisil(205, 60, 0, 9, 90, 45);
//		
//			generarMisil(165, 60, 341.57, 5.35, 90, 125);
//			generarMisil(178, 70, 30, 8, 90, 325);

//			COLISION ENTRE MISIL ENEMIGO Y DEFENSOR DE DISTINTO ID
//			generarMisil(500, 50, 0, 9, 90, 180);	
//			try {
//				Thread.sleep(5000);
//			} catch (InterruptedException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			generarMisil(300, 50, 0, 9, 90, 180);
//			
//			COLISION ENTRE DOS MISILES ENEMIGOS
//			generarMisil(65.05, 60, 140, 9, 90, 80);
//			generarMisil(65.05, 60, 140, 9, 90, 150);
	}
}